<?php
/**
 * Created by PhpStorm.
 * User: BlueIdeaLirui
 * Date: 2019/09/03
 * Time: 14:58
 */

namespace business\elasticsearch\models;

use yii\elasticsearch\ActiveRecord;
use business\elasticsearch\types\MaterialMapConfigType;

class MaterialBasicModel extends ActiveRecord
{
    /**
     * 大数据材料属性
     * @return array|string[]
     */
    public function attributes()
    {
        return [
            'uid',  // 材料id
            'areaCode',  // 城市code
            'areaName', // 城市名称
            'materialName', // 材料名称
            'materialCategoryCode', // 材料分类code
            'materialCategory', // 材料分类
            'materialCategoryAlias', // 材料分类别名
            'materialSkuCodes', // 材料code
            'materialSpecs', // 材料规格
            'priceInfo',    // 材料价格信息
        ];
    }

    /**
     * 创建索引
     * @return mixed
     */
    public function createIndex()
    {
        return static::getDb()->createCommand()
            ->createIndex(
                static::index(),
                [
                    'settings' => MaterialMapConfigType::settingsConfig()
                    ,
                    'mappings' => [
                        static::type() => MaterialMapConfigType::mapConfig()
                    ]
                ]
            );
    }

    /**
     * 索引是否存在
     * @return mixed
     */
    public function existsIndex()
    {
        return static::getDb()
            ->createCommand()
            ->indexExists(static::index());
    }

    /**
     * 索引
     * @return string
     */
    public static function index()
    {
        return 'b2b_company.yl_m_material_basic';
    }

    /**
     * 类型
     * @return string
     */
    public static function type()
    {
        return 'yl_m_material_basic';
    }
}
